#ifndef __PLATFORM_CONTEXT_H__
#define __PLATFORM_CONTEXT_H__

#include "..\fwLog.h"
#include "..\fwHeader.h"
#include "..\Config\fwDllConfig.h"
#include "..\Game\fwGameContext.h"

class _DLL_LIB_API PlatformContext
{
protected:
	//Game instance
	static GameContext * m_pGameContext;
protected:
	//Constuctor/Destructor
	PlatformContext();
public:
	virtual ~PlatformContext();

	//Register game method
	void RegisterGame(GameContext* pGameContext);

public: //Abstract Method

	//Init device data
	virtual int Init() = 0;

	//Release all resource of device
	virtual void Destroy() = 0;

	//Run main game loop
	//Run update/draw insite it
	//Sometime it may be run touch/key function
	virtual void Run() = 0;
};

#endif